﻿/******************************************************************************
 * 【本类功能概述】                                 					      *
 *  版权所有（C）2017-20XX                                                    *
 *  保留所有权利。                                                            *
 ******************************************************************************
 *  作者 : <hughjk>
 *  创建时间: 2019/9/16 16:15:50
 *  文件描述:状态
 *****************************************************************************/

using UnityEngine;

namespace PhasesModel
{
    public class Phases : ModelClueInfo
    {
        [HideInInspector] public PhasesType PhasesType;
        [HideInInspector] public Phases CurPhases => m_PhasesManager.CurPhases;

        [HideInInspector] public bool UpdataWait = false;//更新等待，依赖外部计时器开启关闭

        public void SwitchPhases(PhasesType type)
        {
            m_PhasesManager.SwitchPhases(type);
        }

        public void Starts()
        {
            UpdataWait = false;
            StartPhases();
        }

        public void Ends()
        {
            EndPhases();
        }

        public void Updates(float dt)
        {
            if (UpdataWait)
            {
                return;
            }
            PhasesUpdate(dt);
        }

        public virtual void StartPhases()
        {
        }

        public virtual void EndPhases()
        {
        }

        public virtual void Reason(float dt)
        {
        }

        public virtual void PhasesUpdate(float dt)
        {
        }
    }
}